Why do we use inner class in Java